teletype1 / aes67-sender-enhanced

Enhanced AES67 Sender software for Node.js
GNU General Public License v3.0
18 stars 1 forks source link

Could not sync to PTP leader. Aborting #4

Open Renlong2020 opened 1 month ago

Renlong2020 commented 1 month ago

Hello, this is my first time trying to use aes67 sender enhanced main and everything is working properly. However, when calling the sound card device, I encountered this error message, Could not sync to PTP leader. Aborting., May I ask if I have missed any steps

teletype1 commented 1 month ago

Hihi - thanks so much for trying out my software.

The error you're getting is because there is no PTP clock on your network. My goal in writing it was to send audio to Dante devices, which can act as PTP (Precision Time Protocol) masters - in my case this was a Soundcraft Si Performer mixing console. Let me know what your transmitting device is, and what your destination is, and I'd be happy to help.

-dr.mc

Play-AV commented 1 month ago

Hello, this is my first time trying to use aes67 sender enhanced main and everything is working properly. However, when calling the sound card device, I encountered this error message, Could not sync to PTP leader. Aborting., May I ask if I have missed any steps

I'll assume that you do not have a PTP master running (if you do, that's different, we can help you sort that out).

A key component of AES67 is the shared 'concept' of time that participants rely on. A PTP master, in the most simplistic sense is that 'source' of time. If you want to get up and running without much hassle, I can recommend the Audinate AVIO's, you don't even need to actually use them for audio in your setup, they can act as a PTP master for both AES67 and Dante, regardless of what transmitters / receivers or processors you're using.

If you want to avoid buying hardware but you have another system free to use, you can try running ptp4l acting as a GM on it. There's some quasi okay setup guides out there but you may end up needing to tune things or play around, especially if you lack a GNSS time source. You can also look at timebeat's offerings for something a little more polished.

Renlong2020 commented 1 month ago

Hihi - thanks so much for trying out my software.

The error you're getting is because there is no PTP clock on your network. My goal in writing it was to send audio to Dante devices, which can act as PTP (Precision Time Protocol) masters - in my case this was a Soundcraft Si Performer mixing console. Let me know what your transmitting device is, and what your destination is, and I'd be happy to help.

-dr.mc

First of all, thank you very much for your reply.Let me briefly describe my situation. I use a sound card, a multi-channel input/output sound card, and hope to transmit the audio to another computer through the network via AES67, which is equivalent to recording and mixing on the main control computer. And the sound card part is equivalent to an interface box. The sound card I am using is RME9652. The computer on the sound card side and the computer receiving the main control are both Windows systems. Connect to a local area network through a gigabit switch in the middle.

After a day of researching, I also realized that perhaps there is a lack of PTP servers, and I do not want to invest in hardware. Is there any software that can support PTP servers? Or how can I transfer audio on AES67? Looking forward to your reply.

Renlong2020 commented 1 month ago

I'll assume that you do not have a PTP master running (if you do, that's different, we can help you sort that out)

Indeed, I do not have PTP server hardware. Is there any open-source software recommended for building PTP servers that run on Windows? Buying hardware PTP is really too expensive.

Play-AV commented 1 month ago

I'll assume that you do not have a PTP master running (if you do, that's different, we can help you sort that out)

Indeed, I do not have PTP server hardware. Is there any open-source software recommended for building PTP servers that run on Windows? Buying hardware PTP is really too expensive.

You can't really use Windows as a PTP GM. There are implementations IIRC but this is not something you want to do. Look at a pi CM4, timebeat's stuff, or the Audinate AVIOs.

Renlong2020 commented 1 month ago

I'll assume that you do not have a PTP master running (if you do, that's different, we can help you sort that out)

Indeed, I do not have PTP server hardware. Is there any open-source software recommended for building PTP servers that run on Windows? Buying hardware PTP is really too expensive.

You can't really use Windows as a PTP GM. There are implementations IIRC but this is not something you want to do. Look at a pi CM4, timebeat's stuff, or the Audinate AVIOs.

Are you referring to such a device? Can we provide PTP service by connecting him to the local area network?

137986F7-D792-4F6E-B10E-17F28D5C8219

Play-AV commented 1 month ago

I'll assume that you do not have a PTP master running (if you do, that's different, we can help you sort that out)

Indeed, I do not have PTP server hardware. Is there any open-source software recommended for building PTP servers that run on Windows? Buying hardware PTP is really too expensive.

You can't really use Windows as a PTP GM. There are implementations IIRC but this is not something you want to do. Look at a pi CM4, timebeat's stuff, or the Audinate AVIOs.

Are you referring to such a device? Can we provide PTP service by connecting him to the local area network?

137986F7-D792-4F6E-B10E-17F28D5C8219

Yes. Needs to be in AES67 mode for PTPv2 (what AES67 uses) to show up IIRC (you can enable with Dante Controller)

teletype1 commented 1 month ago

What Play-Av is saying here is all correct, but I'm not sure this will solve your problem - you can add a PTP leader device to your network, but there is still the issue of what will receive the AES67 streams on your 2nd computer. The obvious choice would be Dante Virtual Sound Card or Via, but those also cost money. I have tested AES67-sender-enhanced with Ravenna and it works, but it's very complicated to set up, which may be outside your comfort zone.

I'm curious as to why you want to do this, and what you're trying to actually do.

Renlong2020 commented 1 month ago

What I want to do is this: currently, I have a Windows computer with an RME9652 sound card installed, which can achieve 24 input/output, combined with ADAT. On the other end of Windows, I have a Motu sound card that can achieve 8 inputs and outputs. So I want to use the RME9652 end as a stage interface box and the Motu end as the main control, with a distance of at least 80 meters between the two. I hope to transmit 24 audio channels to the Motu end through the AES67 protocol for mixing, recording, etc. You should know that if all 24 audio channels are analog signals, a large amount of wiring is a big project, and through AES67, only one Ethernet cable is needed.

Once again, based on the open source of AES67, if multi-channel audio transmission can be achieved at both ends, it would greatly improve the low-cost implementation of network audio transmission. Any audio worker with two sets of multi-channel sound cards can rely on this system to transmit multiple audio channels based on AES67, and only need a PTP server to join the network. The computers at both ends also have open source virtual sound cards or other hardware requirements that I am not familiar with.

teletype1 commented 1 month ago

I understand - not sure that is the best way to achieve what you're trying to do - a 50 foot, 24 channel analog snake would only cost like $250 on Amazon and I'm not sure you're going to spend less than that trying to use AES67.
It also is worth mentioning that not all switches support PTPv2, or some of the other protocols necessary for running Dante / AES67 audio over a gigabit connection.

BTW Two Macs with AVB ethernet capability can share an audio interface as you describe, but I don't know if there are any Windows equivalents to that. Windows is generally undesirable for these sorts of things.

Play-AV commented 1 month ago

Alright, both systems are windows, do you need to interface with any 'actual' AES67 hardware or just want transport between two systems ? If you're purely 'in the box' so to speak, and do not need aes67 support (what I'm about to suggest works with aes67 but to do so requires hardware / a ptp master) , Dante VSC + Via. The combo is cheap and utterly excellent. Its my "it needs to work" transport. While I have my own internal windows VSC now, I still use the Dante VSC on my production systems heavily because I would prefer to have something that "isn't made by me" from a reliability standpoint (though my internal, self made AES67 stuff is bizarrely reliable). The latency between 2 Windows systems I run is good enough for gaming (and that includes some device routing trickery on the source machine) at 120hz. That's not really my primary use or anything but it's a good measure since a frame is like ~8ms, lipsync for 24 fps film material is obviously easy at ~40ms. Dante VSC on the source machine, and Via on the destination. It's really rock solid for me. To get Dante VSC > AES67 , you can look at Phil's dante > aes67 relay, it's dead simple. Dante VSC plays very nicely with Windows and unlike some AES67 VSCs, doesn't embed itself heavily into your OS (for example the reference Ravenna driver has to replace / hijack your NIC and I've had wild stability issues with that, like fatal BSODs).
So for me, Dante VSC runs on a system, and then it all of the channels needed can be picked up by both Via / Dante devices and that same audio goes into my AES67 network (which does processing / dsp , analytics / metering, and handles routing to monitoring endpoints)

Play-AV commented 1 month ago

I understand - not sure that is the best way to achieve what you're trying to do - a 50 foot, 24 channel analog snake would only cost like $250 on Amazon and I'm not sure you're going to spend less than that trying to use AES67. It also is worth mentioning that not all switches support PTPv2, or some of the other protocols necessary for running Dante / AES67 audio over a gigabit connection.

I was running 16ch like 90ft from my machine room > multichannel monitoring rig with 2 snakes, and I was at the point where I felt it was ridiculous (which it was) and so I, sort of on a whim (not expecting it to work) setup Dante VSC + Via on a tiny x86 endpoint that was connected to my D/A and like... man, it worked basically without issue. Was the cheapest way to prove to myself that pursuing an all AoIP transport philosophy was viable.

Re: networking. Most modern routers should at least 'know' to not route PTP traffic to anything on Wifi (if it's happening, the effect is usually obvious). QoS is somewhat of a big deal if you have noisy neighbors on the network . If for whatever reason, your network hardware / situation is unusable for this, you could deploy a small network dedicated to audio. Cheapish routers should be alright here, the bog standard, don't think about it answer is having everything hooked up to a Cisco SG250 - SG350 switch, you can even just get a 10 port one. There's some config guides from Merging for the 350 that can give you an idea of what settings to use. https://merging.atlassian.net/wiki/spaces/PUBLICDOC/pages/4817447/Network+Switches+for+RAVENNA+-+AES67

teletype1 commented 1 month ago

I guess I'm just from a different realm or something - we have more than 250 channels of analog in my building running between concert venues and the control room. Perfectly normal to me... Y'all do your thing! :) I do want to write an aes67 receiver at some point... to do the same thing aes67-sender does, just the opposite direction.

Play-AV commented 1 month ago

I guess I'm just from a different realm or something - we have more than 250 channels of analog in my building running between concert venues and the control room. Perfectly normal to me... Y'all do your thing! :) I do want to write an aes67 receiver at some point... to do the same thing aes67-sender does, just the opposite direction.

In my case, this setup is at my home, pulling 16-24 ch through the walls (only to maybe want to change it / expand) isn't what I want to be doing. When everything is slung around over AoIP, not only do I go from snakes down to a few ethernet cables, I get a huge amount of flexibility with routing that lets multiple endpoints pick up the same audio (and operate on it however they see fit, for example bringing 7.1 down to 2.0 for headphones with correction, leaving the audio going to the main multichannel rig untouched). It's kind of a no brainer in my situation

Play-AV commented 1 month ago

do want to write an aes67 receiver at some point... to do the same thing aes67-sender does, just the opposite direction.

Easier than a transmitter IMO

Renlong2020 commented 1 month ago

If multi-channel cables are used to transmit multi-channel audio, it is indeed a simple way, but when an additional node needs to be added for live streaming or other functions, analog cables are not a flexible way. I would like to know what steps are required to run aes67 to transmit audio? 1. aes67 sender (currently there is an open source program for adding sound cards to aes67), 2. A server that can provide PTP services on LAN networks (hardware based PTP servers such as Dante Avio, but this requires purchase. Or software based PTP servers that can be provided on LAN, which may be something I am more inclined to do), 3. A switch or router that supports PTP transmission (no doubt, it must be purchased, or can a regular gigabit router handle it?), 4. The receiving end requires an aes67 virtual sound card driver (is there such an open source program?) for mixing and recording on Daw, is there anything else?

Play-AV commented 1 month ago

If multi-channel cables are used to transmit multi-channel audio, it is indeed a simple way, but when an additional node needs to be added for live streaming or other functions, analog cables are not a flexible way. I would like to know what steps are required to run aes67 to transmit audio? 1. aes67 sender (currently there is an open source program for adding sound cards to aes67), 2. A server that can provide PTP services on LAN networks (hardware based PTP servers such as Dante Avio, but this requires purchase. Or software based PTP servers that can be provided on LAN, which may be something I am more inclined to do), 3. A switch or router that supports PTP transmission (no doubt, it must be purchased, or can a regular gigabit router handle it?), 4. The receiving end requires an aes67 virtual sound card driver (is there such an open source program?) for mixing and recording on Daw, is there anything else?

Read my comment about Dante VSC + Via. Seems like it'll address your use case well. You are not working with existing AES67 devices, you're not running linux systems, you can go Dante for this without extra hassles. Audinate offers free trials and the software is relatively cheap to buy.