⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 writetoss.lsp

📁 Audacity是一款用於錄音和編輯聲音的、免費的開放源碼軟體。它可以執行於Mac OS X、Microsoft Windows、GNU/Linux和其它作業系統
💻 LSP
字号:
;; writetoss -- writes the "toss prepended samples" routine;; modified May 3, 1999 by RBD to not adjust t0 when samples will be tossed;;    also, final_time is just susp->susp.t0, since t0 is unadjusted.(defun write-toss (alg stream)  (let ((alg-name (get alg 'name))        (sound-names (get alg 'sound-names)))    ;;----------------    ;; void ALG_toss_fetch(susp, snd_list)    ;;   register ALG_susp_type susp;    ;;   snd_list_type snd_list;    ;; {    ;;    long final_count = susp->susp.toss_cnt);    ;;    time_type final_time = susp->susp.t0;    ;;    FORMERLY, THIS WAS:    ;;      time_type final_time = susp->susp.t0 + final_count / susp->susp.sr;    ;;    long n;    ;;----------------    (format stream "~%~%void ~A_toss_fetch(susp, snd_list)~%" alg-name)    (format stream "  register ~A_susp_type susp;~%" alg-name)    (format stream "  snd_list_type snd_list;~%{~%")    (format stream     "    long final_count = susp->susp.toss_cnt;~%")    (format stream"    time_type final_time = susp->susp.t0;~%")    (format stream "    long n;~%~%")    (cond (*watch*           (format stream            "    printf(\"~A_toss_fetch: final count %d final time %d\\n\", "            alg-name)           (format stream "final_count, final_time);~%")))    ;;------------------------------    ;; for each sound argument:    ;;    ;;    /* fetch samples from NAME up to final_time for this block of zeros */    ;;    while ((round((final_time - susp->NAME->t0) * susp->NAME->sr)) >=    ;;	   susp->NAME->current)    ;;	susp_get_samples(NAME, NAME_ptr, NAME_cnt);    ;;------------------------------    (dolist (name sound-names)      (format stream  "    /* fetch samples from ~A up to final_time for this block of zeros */~%"       name)      (format stream  "    while ((round((final_time - susp->~A->t0) * susp->~A->sr)) >=~%"        name name)      (format stream "\t   susp->~A->current)~%" name)      (format stream "\tsusp_get_samples(~A, ~A_ptr, ~A_cnt);~%"               name name name))    ;;----------------    ;;    /* convert to normal processing when we hit final_count */    ;;    /* we want each signal positioned at final_time */    ;;----------------      (format stream       "    /* convert to normal processing when we hit final_count */~%")      (format stream "    /* we want each signal positioned at final_time */~%")    ;;----------------    ;; for each sound argument:    ;;    ;;	n = round((final_time - susp->NAME->t0) * susp->NAME->sr -    ;;	     (susp->NAME->current - susp->NAME_cnt));    ;;	susp->NAME_ptr += n;    ;;	susp_took(NAME_cnt, n);    ;;----------------    (dolist (name sound-names)      (format stream "    n = round((final_time - susp->~A->t0) * susp->~A->sr -~%"              name name)      (format stream "         (susp->~A->current - susp->~A_cnt));~%"              name name)      (format stream "    susp->~A_ptr += n;~%" name)      (format stream "    susp_took(~A_cnt, n);~%" name))    ;;----------------    ;;	susp->susp.fetch = susp->susp.keep_fetch;    ;;  (*(susp->susp.fetch))(susp, snd_list);    ;; }    ;;----------------    (format stream "    susp->susp.fetch = susp->susp.keep_fetch;~%")    (format stream "    (*(susp->susp.fetch))(susp, snd_list);~%")    (format stream "}~%")))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -