From owner-freebsd-ports Sat Feb 19 8:30:37 2000 Delivered-To: freebsd-ports@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id D34B237BC3E for ; Sat, 19 Feb 2000 08:30:12 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id IAA62472; Sat, 19 Feb 2000 08:30:02 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from blaubaer.kn-bremen.de (blaubaer.kn-bremen.de [195.37.179.254]) by hub.freebsd.org (Postfix) with ESMTP id DD8EB37BC58 for ; Sat, 19 Feb 2000 08:27:41 -0800 (PST) (envelope-from nox@saturn.kn-bremen.de) Received: from saturn.kn-bremen.de (uucp@localhost) by blaubaer.kn-bremen.de (8.9.1/8.9.1) with UUCP id RAA15955; Sat, 19 Feb 2000 17:22:16 +0100 Received: (from nox@localhost) by saturn.kn-bremen.de (8.9.3/8.8.5) id RAA43447; Sat, 19 Feb 2000 17:22:24 +0100 (CET) Message-Id: <200002191622.RAA43447@saturn.kn-bremen.de> Date: Sat, 19 Feb 2000 17:22:24 +0100 (CET) From: Juergen Lock Reply-To: nox@jelal.kn-bremen.de To: FreeBSD-gnats-submit@freebsd.org Cc: naddy@mips.rhein-neckar.de X-Send-Pr-Version: 3.2 Subject: ports/16819: new port audio/gramofile Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 16819 >Category: ports >Synopsis: new port audio/gramofile >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sat Feb 19 08:30:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: Juergen Lock >Release: FreeBSD 3.4-STABLE i386 >Organization: me? organized?? >Environment: 3.4-STABLE i386, and an isa sb16 hooked up as `tape 2' on the stereo (interesting what such a cheap card can do with a `real' amp and speakers... :) >Description: I wanted to record longer audio files than short clips, and this one finally does it. (it also doesn't need X and uses shared memory for buffering, so you could probably use that old box thats doing nothing in the corner to do your recordings and then won't have to worry about losing data because of too much swapping etc. on the main box...) It also has some other interesting features for eg digitizing vinyl records (see pkg/DESCR), but that i haven't yet tried. Oh and for playback it also uses shared memory which makes it skip less than eg sox' /usr/local/bin/play... Definitely a candidate for 4.0 i'd say. >How-To-Repeat: as usual, unshar, make install >Fix: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # Makefile # pkg/ # pkg/COMMENT # pkg/DESCR # pkg/PLIST # files/ # files/md5 # patches/ # patches/patch-aa # patches/patch-ab # patches/patch-ac # echo x - Makefile sed 's/^X//' >Makefile << 'END-of-Makefile' X# New ports collection makefile for: gramofile X# Version required: 1.5 X# Date created: Fri Jan 28 18:40:38 CET 2000 X# Whom: nox@jelal.kn-bremen.de X# X# $FreeBSD: $ X# X XDISTNAME= gramofile-1.5 XCATEGORIES= audio XMASTER_SITES= http://cardit.et.tudelft.nl/~card06/ X XMAINTAINER= nox@jelal.kn-bremen.de X XALL_TARGET= gramofile XUSE_GMAKE= yes X XSTRIP= X Xdo-install: X ${INSTALL_PROGRAM} ${WRKSRC}/gramofile ${WRKSRC}/bplay_gramo ${PREFIX}/bin X ${MKDIR} ${PREFIX}/share/doc/gramofile X ${INSTALL_DATA} ${WRKSRC}/README ${PREFIX}/share/doc/gramofile X ${LN} -s bplay_gramo ${PREFIX}/bin/brec_gramo X X.include END-of-Makefile echo c - pkg/ mkdir -p pkg/ > /dev/null 2>&1 echo x - pkg/COMMENT sed 's/^X//' >pkg/COMMENT << 'END-of-pkg/COMMENT' Xaudio recording and tick/scratch reduction for e.g. vinyl records END-of-pkg/COMMENT echo x - pkg/DESCR sed 's/^X//' >pkg/DESCR << 'END-of-pkg/DESCR' XThis is version 1.5 of GramoFile, released February 15, 1999. With this Xprogram you can record audio of (for example) gramophone records, process Xthe signal and listen to the results. Because sound files of the X.WAV-format are used, it is possible to exchange the files with many other Xprograms. Cdrecord(1) can burn CD-Recordables of these, so you can make XCDs with the music of your favorite records. The user interface of XGramoFile has a windows-like look-and-feel, making it fairly easy to use. X XOne of the most important parts of GramoFile is the ability to process Xdigital audio signals. Through the application of several filters it is Xpossible to accomplish a significant reduction of disturbances like ticks Xand scratches. These filters have been programmed in such a fashion that Xthey can be applied in a random order (and multiple times) in a single Xrun, thus evading the use of temporary files. There is a possibility of Xadjusting the properties of each filter independently, so in every Xsituation an optimal result can be achieved. X XAnother interesting feature is the track splitting. Just make one .wav file Xof an entire side of an record and GramoFile will detect where the individual Xtracks are located. This happens fully automatically, without need to set Xany options. More experienced users may fine-tune the algorithm, or change Xthe detected track starts and ends, but generally that will not be Xnecessary. Track-times are saved in an editable (plaintext) .tracks file, Xthat will be used during the signal processing to produce one processed X.wav file for each individual track. X XWWW: http://cardit.et.tudelft.nl/~card06/ END-of-pkg/DESCR echo x - pkg/PLIST sed 's/^X//' >pkg/PLIST << 'END-of-pkg/PLIST' Xbin/gramofile Xbin/bplay_gramo Xbin/brec_gramo Xshare/doc/gramofile/README X@dirrm share/doc/gramofile END-of-pkg/PLIST echo c - files/ mkdir -p files/ > /dev/null 2>&1 echo x - files/md5 sed 's/^X//' >files/md5 << 'END-of-files/md5' XMD5 (gramofile-1.5.tar.gz) = 3727bbab7c8894d7225b1e9bdfb38022 END-of-files/md5 echo c - patches/ mkdir -p patches/ > /dev/null 2>&1 echo x - patches/patch-aa sed 's/^X//' >patches/patch-aa << 'END-of-patches/patch-aa' XIndex: Makefile X@@ -14,15 +14,24 @@ X SHELL = /bin/sh X X CC = gcc X-DEPS = $(OBJS) makebplay X-CFLAGS = -Wall -O2 -DTURBO_MEDIAN -DTURBO_BUFFER X LDFLAGS = X-LIBS = -lcurses -lm X+# For Linux (and maybe others), uncomment these: X+#CFLAGS = -Wall -O2 -DTURBO_MEDIAN -DTURBO_BUFFER X+#LIBS = -lcurses -lm X+#DEPS = $(OBJS) makebplay X+#COPY_P = -a X X # For IRIX (and maybe others), uncomment these: X #CFLAGS = -Wall -O2 -DTURBO_MEDIAN -DTURBO_BUFFER -DSWAP_ENDIAN X+#LIBS = -lcurses -lm X #DEPS = $(OBJS) X+#COPY_P = -a X X+# For FreBSD (and maybe others), uncomment these: X+CFLAGS = -Wall -O2 -DTURBO_MEDIAN -DTURBO_BUFFER -DHAVE_NCURSES X+LIBS = -lncurses -lm X+DEPS = $(OBJS) makebplay X+COPY_P = -p X X $(PROG): $(DEPS) X $(CC) $(LDFLAGS) $(OBJS) -o $(PROG) $(LIBS) X@@ -36,7 +45,7 @@ X clrscr.o secshms.o X $(MAKE) -C bplaysrc X -rm bplay_gramo brec_gramo X- cp -a bplaysrc/bplay ./bplay_gramo X+ cp ${COPY_P} bplaysrc/bplay ./bplay_gramo X ln -s bplay_gramo brec_gramo X X .PHONY: clean XIndex: bplaysrc/Makefile X@@ -7,9 +7,14 @@ X #SRCS = bplay.c sndfunc.o shmbuf.c X X CC = gcc X-CFLAGS = -Wall -O2 -DUSEBUFFLOCK -DREDHAT50 -DLP2CD -DVUMETER # -DDEBUG X LDFLAGS = X-LIBS = -lcurses X+# For Linux (and maybe others), uncomment these: X+#CFLAGS = -Wall -O2 -DUSEBUFFLOCK -DREDHAT50 -DLP2CD -DVUMETER # -DDEBUG X+#LIBS = -lcurses X+ X+# For FreBSD (and maybe others), uncomment these: X+CFLAGS = -Wall -O2 -DLP2CD -DVUMETER -DHAVE_NCURSES # -DDEBUG X+LIBS = -lncurses X X $(PROG): $(OBJS) X $(CC) $(LDFLAGS) $(OBJS) -o $(PROG) $(LIBS) END-of-patches/patch-aa echo x - patches/patch-ab sed 's/^X//' >patches/patch-ab << 'END-of-patches/patch-ab' XIndex: bplaysrc/bplay.c X@@ -20,14 +20,22 @@ X #include X #include X X+#ifndef __FreeBSD__ X #include X+#else X+#include X+#endif X X #include "fmtheaders.h" X X #include "../yesnowindow.h" X void init_curses(void); X void finish_curses(int sig); X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include "../errorwindow.h" X #include "../clrscr.h" X #include "../reclp_main.h" X@@ -45,11 +53,15 @@ X X /* Prototypes */ X X+#ifdef linux X /* This is in libc, but not in the header files. -- but it IS in X- Red Hat 5.0.... Libc6? */ X+ Red Hat 5.0.... Libc6? X+ well i'd guess its not in the headers because its nonstandard, i.e. X+ (probably) only exists on linux... -nox */ X #ifndef REDHAT50 X extern char *basename(char *name); X #endif X+#endif X X void Usage(void); X void ErrDie(char *err); X@@ -98,7 +109,13 @@ X X init_curses(); X X+#ifdef linux X progname = basename(argv[0]); /* For errors */ X+#else X+ progname = strrchr(argv[0], '/'); /* For errors */ X+ if (!progname || !*++progname) X+ progname = argv[0]; X+#endif X X /* Ok, find out if we record or play */ X if (strcmp(progname, "brec_gramo") == 0) XIndex: bplaysrc/shmbuf.c X@@ -28,12 +28,24 @@ X #include "../reclp_main.h" X #include "../boxes.h" X #include "../buttons.h" X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include X X #ifndef SEMMSL X+#ifdef __FreeBSD__ X+/* X+ * you may want to adjust this to whats configured into your kernel, X+ * 30 is just the current default. (see ) X+ */ X+#define SEMMSL 30 X+#else X #define SEMMSL 32 X #endif X+#endif X X extern void finish_curses(int sig); X X@@ -107,7 +119,7 @@ X */ X shmid2 = shmget(IPC_PRIVATE, numbuffs*sizeof(blockinf_t), X IPC_EXCL | IPC_CREAT | 0600); X- if (shmid == -1) X+ if (shmid2 == -1) X ErrDie("shmget"); X buffinf = (blockinf_t*)shmat(shmid2, IPC_RMID, SHM_RND); X if (buffinf == (blockinf_t*)((char*)-1)) X@@ -410,6 +422,9 @@ X } X /* Tidy up and wait for the child */ X close(audio); X+ /* XXX fix the occasional deadlock in the following wait() -nox */ X+ for (i = 0; i < numbuffs; i++) X+ up(disksemid, i); X wait(NULL); X X /* Free all the semaphores */ XIndex: bplaysrc/sndfunc.c X@@ -11,7 +11,11 @@ X #include X #include X #include X+#ifndef __FreeBSD__ X #include X+#else X+#include X+#endif X #include X X #define AUDIO "/dev/dsp" END-of-patches/patch-ab echo x - patches/patch-ac sed 's/^X//' >patches/patch-ac << 'END-of-patches/patch-ac' XIndex: boxes.c X@@ -8,7 +8,11 @@ X */ X X #include "boxes.h" X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X X X void XIndex: buttons.c X@@ -8,7 +8,11 @@ X */ X X #include "buttons.h" X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X X X void XIndex: clrscr.c X@@ -8,7 +8,11 @@ X */ X X #include "clrscr.h" X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X X X void XIndex: errorwindow.c X@@ -11,7 +11,11 @@ X #include "buttons.h" X #include "boxes.h" X #include "textwindow.h" X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X X X void XIndex: gramofile.c X@@ -9,7 +9,11 @@ X X #include "mainmenu.h" X #include "splashscr.h" X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include X #include X #include XIndex: helpline.c X@@ -8,7 +8,11 @@ X */ X X #include "helpline.h" X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X X X void XIndex: mainmenu.c X@@ -20,7 +20,11 @@ X #include "playwav.h" X #include "tracksplit.h" X #include X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include X X XIndex: playwav.c X@@ -23,7 +23,11 @@ X #include "fmtheaders.h" X #include "signpr_main.h" X X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include X #include X #include XIndex: reclp_filenm.c X@@ -21,7 +21,11 @@ X #include "clrscr.h" X #include "reclp_main.h" X X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include X #include X #include XIndex: reclp_main.c X@@ -12,7 +12,11 @@ X #include "errorwindow.h" X #include X #include X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X X X void XIndex: scrollmenu.c X@@ -8,7 +8,11 @@ X */ X X #include "scrollmenu.h" X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include X X XIndex: signpr_cmf.c X@@ -30,7 +30,11 @@ X #include "yesnowindow.h" X #include X #include X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include X X /* Macros I used first: XIndex: signpr_cmf2.c X@@ -28,7 +28,11 @@ X #include "yesnowindow.h" X #include X #include X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include X X XIndex: signpr_doubmed.c X@@ -17,7 +17,11 @@ X #include "helpline.h" X #include X #include X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X X X void XIndex: signpr_filtmenu.c X@@ -16,7 +16,11 @@ X #include "errorwindow.h" X #include "stringinput.h" X #include "secshms.h" X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include X #include X XIndex: signpr_general.c X@@ -21,7 +21,11 @@ X #include "signpr_exper.h" X #include X #include X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X X X void XIndex: signpr_infilenm.c X@@ -20,7 +20,11 @@ X #include "helpline.h" X #include "clrscr.h" X X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include X #include X #include XIndex: signpr_main.c X@@ -18,7 +18,11 @@ X #include "clrscr.h" X #include "secshms.h" X #include X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include X #include X XIndex: signpr_mean.c X@@ -17,7 +17,11 @@ X #include "helpline.h" X #include X #include X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X X X void XIndex: signpr_median.c X@@ -17,7 +17,11 @@ X #include "helpline.h" X #include X #include X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X X X void XIndex: signpr_outfilenm.c X@@ -20,7 +20,11 @@ X #include "helpline.h" X #include "clrscr.h" X X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include X #include X #include XIndex: signpr_rms.c X@@ -17,7 +17,11 @@ X #include "helpline.h" X #include X #include X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include X X void XIndex: splashscr.c X@@ -7,7 +7,11 @@ X * See the file `COPYING' in this directory. X */ X X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include X X XIndex: stringinput.c X@@ -8,7 +8,11 @@ X */ X X #include "stringinput.h" X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X X X void XIndex: textwindow.c X@@ -8,7 +8,11 @@ X */ X X #include "textwindow.h" X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include X #include X XIndex: tracksplit.c X@@ -19,7 +19,11 @@ X X #include X #include X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include X #include X XIndex: tracksplit_filenm.c X@@ -20,7 +20,11 @@ X #include "helpline.h" X #include "clrscr.h" X X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X #include X #include X #include XIndex: tracksplit_parammenu.c X@@ -16,7 +16,11 @@ X #include "helpline.h" X #include X #include X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X X X int XIndex: yesnowindow.c X@@ -11,7 +11,11 @@ X #include "buttons.h" X #include "boxes.h" X #include "textwindow.h" X+#ifndef HAVE_NCURSES X #include X+#else /* HAVE_NCURSES */ X+#include X+#endif /* HAVE_NCURSES */ X X X int END-of-patches/patch-ac exit >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message