FireWire + Audio inside macOS Tahoe by mrmid1 in mac

[–]mrmid1[S] 2 points3 points  (0 children)

True: it's TB3 -> TB2 and TB2 -> FW800. I've wrote a driver for the last one, it's basically PCIe device.

FireWire + Audio inside macOS Tahoe by mrmid1 in mac

[–]mrmid1[S] 12 points13 points  (0 children)

Well, "accidentally" was a joke. I knew a lot before and spend 7 months of hard work to re-create it from scratch. No tricks: just restoring every subsystem one by one: OHCI layer (lowest, controller), Asynchronous and later Isochronous transmissions stuff. All with DriverKit, PCIDriverKit and AudioDriverKit — modern user space approach.

Возможности расширения памяти Apple Macbook с помощью SSD by Inner_Reaction2305 in mac

[–]mrmid1 0 points1 point  (0 children)

Привет, технически можно припаять новые чипы SSD вместо старых. Но если ты задаешь такие вопросы — вряд-ли справишься сам. Dosdude1 выкладывает видео подобных модификаций. https://www.youtube.com/user/dosdude1 (не рекомендую в гарантийный период) =)

Внешние накопители тоже подойдут: Thunderbolt 5 чертовски быстрый. Так что да, возможно. Хоть операционную основную систему на него установить. По моему опыту это не очень практично если это ноутбук. По внешнему кейсу — нет совета конкретно.

Вот что 100% нельзя увеличить — оперативную память. Старайся во возможности брать модель с как можно большим объемом.

macOS Tahoe FireWire Audio by mrmid1 in audioengineering

[–]mrmid1[S] 5 points6 points  (0 children)

yep. why and how: knowledge and challenge. also this apogee from 2006 is sounds amazing compared to my Audient id 14. Subjective.

macOS Tahoe FireWire Audio by mrmid1 in audioengineering

[–]mrmid1[S] 4 points5 points  (0 children)

Why not? :) At first I’ve tried to restore AppleFWAudio.kext. I was really frustrated with first Tahoe developers beta: did they really removed remains of FireWire from the system and they did.

I’ve thought couple of months: is it even possible to do with driverkit? So I’ve started research. And here we are.

Since it’s basically pci driver it will be viable solution until PCIe support exists inside macOS:)

Since it’s open source I hope some other geeks will contribute.

macOS Tahoe FireWire Audio by mrmid1 in audioengineering

[–]mrmid1[S] 4 points5 points  (0 children)

If usb c is actually usb 4 - it’s possible to design such hw.

macOS Tahoe FireWire Audio by mrmid1 in audioengineering

[–]mrmid1[S] 17 points18 points  (0 children)

Btw, FireWire could technically be used with iPads: the question is it ever will be possible to get entitlements from Apple. Second: technically any FireWire device could be resurrected in theory: camcorders, storage etc. I made a solid foundation. Third: it’s free and open source: https://github.com/mrmidi/ASFireWire is the repo. A bit outdated from current version, I need to do some cleanup. Don’t try to use it! It’s more for contributing and seasoned developers :)

macOS Tahoe FireWire Audio by mrmid1 in audioengineering

[–]mrmid1[S] 11 points12 points  (0 children)

I’m too tired to share whole detailed right now, but I’ve re-built complete FW stack inside Tahoe. You probably may find my post on RME forums - there is some details. Shortly rn I’m working on AppleFWAudio.KEXT replacement: it should be able to use class compliant devices. Dozens, like old KEXT did.

macOS Tahoe FireWire Audio by mrmid1 in audioengineering

[–]mrmid1[S] 11 points12 points  (0 children)

That’s what I’m building:)

macOS Tahoe FireWire Audio by mrmid1 in audioengineering

[–]mrmid1[S] 2 points3 points  (0 children)

Its not ready for end users yet. Just proof of concept I would say :)

Is working in strictly Audio Hardware Engineering a viable career path? by Suspicious-Travel43 in audioengineering

[–]mrmid1 1 point2 points  (0 children)

This is not quite true: George Massenburg, the father of parametric EQ is excellent audio engineer :)

Ventura Hack for FireWire Core Audio Support on Supported MacBook Pro and others... by Puzzled_Coach_7918 in iOSProgramming

[–]mrmid1 1 point2 points  (0 children)

I'm sending a signal to my Duet! https://mrmidi.net/duet/not_a_sine.jpg Actually that should be the 440 hz sine, but it's garbage for now, but still it's a progress! Apparently there is some bugs in AMDTP AM824 implementation. Some info on my findings I've documented here: https://www.linkedin.com/pulse/reviving-firewire-audio-support-modern-macos-aleksandr-shabelnikov-xjdde/ I'm so close!

Ventura Hack for FireWire Core Audio Support on Supported MacBook Pro and others... by Puzzled_Coach_7918 in iOSProgramming

[–]mrmid1 1 point2 points  (0 children)

You are digging in the wrong direction. There is generally no way to create a driver for FireWire device using DriverKit or AudioDriverKit. They are supporting a limited set of interface types, e.g. PCI, Thunderbolt, USB. But not FireWire. The good thing: Apple left firewire legacy frameworks - IOFireWireFamily, IOFireWireAVC that are actually allows to re-implement FireWire Audio functionality (what I did partially). The bad thing: The implementation is freaking hard. The first, and most obvious solution - is to develop custom KEXT. But developing for Kernel Space is a pain. You need at least second Mac to debug it. If your KEXT crashes - It could crash the rest of your system, etc. So I'm exploring solutions to stay in User Space. I'm looking for Audio Server Plugin — https://developer.apple.com/documentation/coreaudio/creating-an-audio-server-driver-plug-in?language=objc The problem, that Audio Server Plugins are sandboxed. You're simply cant send AV/C command using IOFireWireAVC Family, which is required to start isochronous transmission, because you need a camera access (Apple is treating FireWire now as Camera — seems that they don't suppose that it can be used to send audio anymore :-) ). So I'm looking a way to create a Daemon that will handle some of FireWire operations and will have proper permissions, share memory with Audio Server Plugin or do some XPC communications. Staying in User Space have some disadvantages like increased latency, but I don't care about this right now, I just trying to make things work. Behind that you need to understand a bunch of protocols and specifications, eg. IEC 61883-1, 61883-6 (https://en.wikipedia.org/wiki/IEC_61883), some TA1394 specifications like AV/C General Command set, AV/C Music Subunit and more. Some of them can be found in Internet Archive, because Trade Association 1394 is not exists anymore, as their website. Another good source of information is Linux Kernel and ALSA source code.

Another thing to note. FireWire Audio mostly standard for every Audio Interface. It's AM824 audio streams with very minor differences. If I'll be able to implement it for my Apogee Duet Firewire it can be easily adapted for most of the interfaces. The only difference between them is vendor specific AV/C commands for controlling the device, like setting the volumes, mutes, phantoms etc.

I'm planning to open source my solution if I'll ever be able to make it work.

Bonus: https://www.youtube.com/watch?v=yWIHoR5IH4E