Пытается генерировать квадрат, пилу и грех wav в коде, а затем сохранять в файл AIFF на основе учебного ядра Chris Adam книга. У меня это работает, но я смущен тем, почему мне не нужно преобразовывать образец в .bigEndian
в Swift, но вам нужно в Obj-C?Создание квадрата, пилы и синуса Образец и запись в файл AIFF - проблемы с большим концом
Вот что рабочий код в Obj-C выглядит следующим образом:
SInt16 sample = CFSwapInt16HostToBig (((i/wavelengthInSamples) *
SHRT_MAX *2) - SHRT_MAX);
Вот что рабочий код в Swift2 выглядит следующим образом:
var sample = Int16(((Double(i)/wavelengthInSamples)
* Double(Int16.max) * 2) - Double(Int16.max))
Вот что Свифт площадка график выглядит, как если бы я оставь .bigEndian
Если добавить .bigEndian
после преобразования в Int16()
и отправить AudioFileWriteBytes, сгенерированный аудио не звучит правильно:
var sample = Int16(((Double(i)/wavelengthInSamples)
* Double(Int16.max) * 2) - Double(Int16.max)).bigEndian
AudioFileWriteBytes(audioFile, 0, Int64(sampleCount * 2), &bytesToWrite, &sample)
Full source here: https://gist.github.com/justinlevi/7a846070ee6e7e245cc3
Вот ссылки на сгенерированных аудио файлов. По какой-то причине объем на квадратной волне действительно низок.
Развейте вопрос: Почему бы меандр быть Су гораздо спокойнее по сравнению с пилой или грех волны?
ИСТОЧНИК: Адамсон, Крис; Авила, Кевин (2012-04-03). Learning Core Audio: практическое руководство по программированию звука для Mac и iOS (Kindle Locations 1063-1073). Образование Пирсона. Kindle Edition.
в Swift версии, если вы не добавите '.bigEndian' и вы пишете аудиофайл, это звучит правильно? – fqdn
Да, если я НЕ добавляю '.bigEndian', то волна звучит правильно, но это мой вопрос. Зачем вам нужно преобразовать образец в .bigEndian в Obj-C, но не в Swift? Особенно, когда AIFF требует больших образцов Endian. –
Это довольно интересно, каждый признак состоит в том, что вам нужно преобразовать в big-endian, weird ... re: аудиофайл, который выводится, используя ваш gist, я не мог заставить его написать файл, который можно было открыть по Quicktime или Logic ... если у вас есть минута, чтобы сделать это, можете ли вы обновить свой текст, чтобы написать полный файл? Мне интересно видеть результирующий сигнал, когда он открывается в редакторе - спасибо! – fqdn