{"id":15720761,"url":"https://github.com/wdlkmpx/gwaveedit","last_synced_at":"2025-05-13T02:49:46.277Z","repository":{"id":51819905,"uuid":"238735407","full_name":"wdlkmpx/gWaveEdit","owner":"wdlkmpx","description":"Sound file editor (written in C using the GTK+ toolkit)","archived":false,"fork":false,"pushed_at":"2022-08-24T17:55:36.000Z","size":2994,"stargazers_count":5,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-01T06:02:44.912Z","etag":null,"topics":["audio","editing","editor","gtk","gtk2","record","recorder","sound"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wdlkmpx.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-06T16:39:48.000Z","updated_at":"2024-08-30T03:07:59.000Z","dependencies_parsed_at":"2022-08-22T23:30:47.486Z","dependency_job_id":null,"html_url":"https://github.com/wdlkmpx/gWaveEdit","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wdlkmpx%2FgWaveEdit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wdlkmpx%2FgWaveEdit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wdlkmpx%2FgWaveEdit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wdlkmpx%2FgWaveEdit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wdlkmpx","download_url":"https://codeload.github.com/wdlkmpx/gWaveEdit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253862736,"owners_count":21975583,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","editing","editor","gtk","gtk2","record","recorder","sound"],"created_at":"2024-10-03T22:00:09.820Z","updated_at":"2025-05-13T02:49:46.256Z","avatar_url":"https://github.com/wdlkmpx.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"----------------------\ngWaveEdit README file\n----------------------\n\ngWaveEdit is a graphical program for editing sound files. It is completely \nfree (GPL).\n\nThe contents of this file is also available inside gWaveEdit from the help \nmenu. \n\n------------\nInstallation\n------------\n\n * Unpack the source:                 tar xjf gwaveedit-1.4.25.tar.gz\n * Go into the source directory:      cd gwaveedit-1.4.25\n * Run the configure script:          ./configure\n * Compile the sources:               make\n * Install the program:               su -c \"make install\"\n\n-----------------\nConfigure options\n-----------------\n\nFor most people, just using ./configure without any arguments should work fine, \nbut here are some options that the configure-script supports:\n\n--without-portaudio \n--without-sdl\n--without-alsalib\n--without-oss\n--without-jack\n  \n  Specifying this option will leave out a sound driver, even if \n  it's libs and headers are found.\n\n--without-libsndfile\n--without-libsamplerate\n\n  Specifying this option will leave out libsndfile/libsamplerate \n  support, even if the library is found.\n\n--with-libsndfile=prefix\n--with-libsamplerate=prefix\n\n  This lets you specify the prefix where libsndfile/libsamplerate is \n  installed if it wasn't auto-detected.\n\n--with-double-samples\n\n  Use double precision floating point numbers for sample processing. If\n  you intend to edit 32-bit files, you should enable this. \n  \n\n--------\nStarting\n--------\n\nTo start the program, simply type gwaveedit. If you want to, you can specify \nfiles to open on the command line, for example 'gwaveedit file.wav'.\n\n-----------\nSample view\n-----------\n\nThe area where you 'see' the contents of the file you are editing, is called \nthe 'sample view'. \n\nIn the sample view there is a grey vertical bar called the 'cursor'. The cursor \nfollows the sound wave when you play the sound. You can position the cursor by \nclicking with the right (2nd) mouse button. If you do this while you're \nplaying a file, the playing will continue from the new cursor position. You can \nalso position the cursor more exact by using the 'Position Cursor...' command \non the Edit menu.\n\nYou can place marks in your file by holding down Ctrl and pressing a number \nfrom 0 to 9. This will place a mark (green vertical bar) with the same number \nat the current cursor position. You can later make the cursor go to that \nposition again by just pressing the number. Setting and jumping to marks can be \ndone while playing. To remove a mark, jump to the mark and set it again.\n\n-------\nPlaying\n-------\n\nPlaying a file is simple, just load the file and press the play button. The \ngreen play button plays from the current position. The yellow play button plays \nthe current selection, or the entire file if nothing is selected. Stop the \nplayback with the stop button (with the red square). \n\nThe playback speed can be varied by adjusting the slider to the far right. \n\nYou can do normal editing while the file is playing.\n\n---------\nRecording\n---------\n\nRecording is done with 'Record...' on the Play menu, or the Record button (the \nred circle). A dialog box will pop up where you can select what format you want \nto record in. After selecting the format, meters and numbers will appear \nshowing info about the volume level of the sound input. \n\nWhen you want to start recording, press the \"Start recording\" button. When \nyou've recorded everything you wanted to, press the Finish button and the \nrecord dialog will disappear and newly recorded sound will show up in a new \nwindow.\n\nCurrently it is impossible to play and record at the same time, so the playback \nwill stop when you record.\n\n-------\nEditing\n-------\n\nYou make selections by dragging the mouse over the sample view. You can hear \nwhat you've currently selected by clicking on the \"play selection\" button (the \nbutton with the yellow arrow) or by selecting 'Play selection' from the Play \nmenu.\n\nYou can use the cursor to refine the selection. Use the 'Selection start at \ncursor' and 'Selection end at cursor' buttons to move the selection starting \npoint or the selection end point to the current cursor position. You can also \ndrag the selection endpoints using the mouse.\n\nThe 'Cut' and 'Copy' functions work like in any other software. \n\nThe 'Paste' function insert the clipboard contents at the cursor position. The \n'Paste over' function works like 'Paste', except that it overwrites the data \nafter the insert position. \n\nThe 'Paste mix' function combines the clipboard data with the data at the \ncursor position.\n\nThe 'Paste as new' function opens a new window and puts the clipboard contents \ninto it. \n\nThe 'Crop' function deletes all parts of the file that are not selected.\n\nThe 'Silence selection' function replaces the selected part with silence. To \navoid clicks, the silent part is a line that meets the wave at the endpoints.\n\nAll editing functions work non-destructively, that is, the file you're editing \nisn't actually changed until you save it (the effects also work this way).\n\n\n-------\nEffects\n-------\n\ngWaveEdit has a few simple effects, which are available from the 'Effects' \nmenu. \n\n * Fade in/out\n\n   This creates a linear fade in or fade out effect.\n\n * Normalize, Normalize to...\n\n   This amplifies the sound as much as possible without getting clipping \ndistortion. The \"Normalize to...\" item lets you specify which level to \nnormalize to.\n\n * Volume adjust/fade...\n\n   This effect lets you select a starting volume and a ending volume and \namplifies the selection fading from the starting volume to the ending volume.\n\n   Note that volumes above 100% may cause sound distortion. Use the 'Find top \nvolume' to find out the maximum amplification possible without distortion. (You \ncan use this for normalizing samples.) \n\n   By setting starting volume and ending volume to the same value you get a \nsimple amplification of the sound. \n\n * Convert samplerate...\n\n   This converts the samplerate of the entire file to one you specify. There \nare different methods for doing this, usually the one in the top has the best \nquality but can take longer than the other method.\n\n * Convert sample format...\n\n   This converts the sample format of the entire file.\n\n   The 'Don't actually change the data' option can be used if the program was \nwrong about the file's format.\n\n * Byte swap\n\n   This \"byte swaps\" the selected part. It can be used to repair damaged files \nwhere the byte order is wrong. Note that if the sound looks alright but plays \nwrong, you should not use this option, instead you should use the \"byte-swap \noutput\" option in the Preferences dialog.\n\n * Mix to mono\n\n   This mixes all channels of the file together to a mono sound.\n\n * Add channel\n\n   This copies the first channel to a new channel in the sound, converting mono \nto stereo etc.\n\n * Map channels...\n   \n   With this effect, you can change the number of channels in the file. You can \nalso rearrange and add (i.e. mix) channels.\n\n * Combine channels...\n\n   This effect lets you create a new sound by a linear combination of the old \nchannels. This means you can do channel mixing / swapping / balance / panning / \namplification etc. by entering different values. For example, to swap the left \nand right channel, you select that the new Channel 1 should be 0% of the old \nChannel 1 and 100% of the old Channel 2, and the new Channel 2 should be 100% \nof the old Channel 1 and 0% of the old Channel 2 \n\n * Speed adjustment...\n\n   This effect changes the speed of the selection. The tone will change as well.\n * Pipe through program...\n \n   This effect is for advanced users wanting to pipe raw audio data through an \nexternal program. The output of the program is read back and replaces the \nprocessed part. \n\ngWaveEdit supports LADSPA effects and can also make use of most of the SoX \nutility's effects. To find the LADSPA plugins the environment variable \nLADSPA_PATH must be properly set up. \n\nAll supported effects can be found by choosing the 'Effects...' menu item. The \neffects are listed with names beginning with [B] for builtin effects, [L] for \nLADSPA effects, and [S] for SoX effects.\n\n\n-------\nQuality\n-------\n\nSome notes on sound quality.\n\nThe general rule when doing audio editing/processing is to not manipulate the \ndata more than necessary and keep an original copy whenever you're processing \nyour important files. \n\nCut, copy and paste operations move the data around without modifying it, so \nthese don't degrade the sound quality. Because of level differences, you may \nget a \"step\" at the start and end of the inserted part, which can cause a small \nclicking sound. \n\nThe mix paste function doesn't decrease quality, unless the peaks become too \nhigh and you get clipping. In that case you will get a warning message.\n\nSound data is normally stored as integer values. Therefore, whenever you \nnormalize, adjust volume, decrease sample size or filter a sound, the result \nmust be rounded. If you use 24 or 32 bit sample sizes, this is not really a \nproblem, but if you use 8 or 16 bits sample size, this rounding causes a \ndecrease in quality. \n\nThe quality decrease that the rounding causes can be masked by adding a small \namount of noise before rounding. This is called \"dithering\". gWaveEdit \nsupports basic dithering and it's enabled by default.\n\nBy default, gWaveEdit uses floating-point temporary files for storing \nprocessed results to avoid rounding until the file is saved.\n\n------------\nFile formats\n------------\n\nEven if gWaveEdit was originally built for editing wav files, it's also \npossible to load and save in a few other formats. gWaveEdit always supports \nwav and raw files, but if it's compiled with the libsndfile library, gWaveEdit \nsupports a couple of other formats as well. \n\nTo save a file with a different file format, use \"Save as...\" and choose a \nformat in the file type selection box. \n\ngWaveEdit has basic support for mp3 and ogg formats. For this to work you need \nto have LAME installed for mp3 support, and OggDec/OggEnc for Ogg support. If \nyou have these programs, you can open and save mp3/ogg files just like any \nother file format.\n\nIf mplayer is installed, gwaveedit can open all formats that it supports, for \nexample the soundtrack of a video file. Since mplayer is only a player, these \nfiles can not be saved back after editing, you have to save the file into a \nsupported format.\n\n-----\nFiles\n-----\n\ngWaveEdit creates a directory ~/.gwaveedit where it stores configuration \ninformation. \n\nThe configuration file is called config. It can be hand edited, but the easiest \nway is through 'Preferences' on the Edit menu.\n\nEach gwaveedit process creates a session file in the .gwaveedit directory \ncalled gwaveedit-session-\u003cpid\u003e-\u003csession\u003e-\u003cstate\u003e, where \u003csession\u003e is the \nsession ID number and \u003cstate\u003e is a character code showing the state of the \nsession ('r' for running sessions). \n\nTemporary files are by default also stored in the ~/.gwaveedit directory. \nWhich directories to use can be set through the preferences dialog. To get the \nbest performance, you should have one temporary directory for each local \nfilesystem. The temporary files have names of the form \n\"gwaveedit-temp-\u003cpid\u003e-nnnn-\u003csession\u003e\". Do NOT open or remove temporary files \nwith the same pid number as a currently running gWaveEdit.\n\ngWaveEdit checks on startup for leftover temporary files and lets the user \nopen them. After opening a crashed session, the files can be saved or thrown \naway.\n\n------------------\nKeyboard shortcuts\n------------------\n\nF1            Help\nF12           Record\n\nCtrl+(number) Set mark\n(number)      Goto mark\n\nCtrl+P        Preferences\nCtrl+E        Effects\n\nCtrl+O        Open file\nCtrl+S        Save file\nCtrl+U        Save selection as\n\nCtrl+C        Copy\nCtrl+X        Cut\nCtrl+D        Delete\nDelete        Delete\nCtrl+V        Paste\nCtrl+Z        Undo\nCtrl+A        Select all\n\nCtrl+G        Position cursor (Go to)\nCtrl+H        Position cursor at file start\nCtrl+J        Position cursor at file end\nCtrl+K        Position cursor at selection start\nCtrl+L        Position cursor at selection end\nY,U           Move cursor to nearest all-channel zero-crossing\nI,O           Move cursor to nearest any-channel zero-crossing\n\nCtrl+Q        Selection start at cursor\nCtrl+W        Selection end at cursor\n\n+,=           Zoom in\n-             Zoom out\n\u003e             Zoom to selection\n\u003c             Zoom all\nArrow keys    Scroll left/right\n\nHome          Move view to file start\nEnd           Move view to file end\nTab           Move view to cursor\nCtrl+Tab      Move cursor to center of view\n\nSpace         Play/Stop\nShift+Space   Play all\n,             Play from cursor pos\n.             Stop\n/             Play selection\nH,J           Move cursor (and playback) 1/8 of view\nK,L           Move cursor one sample\nCtrl+arrow    Move cursor (and playback) half second\n(             Play first 3 seconds of selection\n)             Play last 3 seconds of selection\n\n-------------\nBug reporting\n-------------\n\nIf you find a bug or flaw in the program, report the bug in the bug tracker.\n\nIn case of a crash, please please create a backtrace. Backtraces tell you \nexactly where the program crashed.\n\nHow to create a backtrace:\n1. Enable core dumps: ulimit -c unlimited\n2. Run the program:   gwaveedit\n3. Make the program crash. You should now get a file named core or core.1234 in \nthe directory you're in.\n4. Run gdb with the program and core file: \n   gdb /usr/local/bin/gwaveedit core | tee backtrace.txt\n5. After gdb has loaded, use the command: bt\n6. Quit gdb with the command: quit\n7. Now you should have a back trace in the file backtrace.txt\n\n-----------\nHelping out\n-----------\n\nThere are plenty of things you can do if you want to help the development of \ngWaveEdit. \n\nFirst of all, look for bugs and report all bugs you find into the bug tracker \nor through e-mail. Sometimes a bug can get overlooked for a long time because \nnobody reports it, so don't be afraid to report bugs that have been there for a \nfew releases. You don't have to provide fixes or very detailed information, \nalthough it helps of course.\n\nFeature requests are also welcome, report them to the mailing list or to the \nbug tracker.\n\nIf you speak a language other than English and gWaveEdit isn't translated to \nyour language, you can contribute a translation. To do that, copy the template \ngwaveedit.pot in the po directory into a new file ll.po, where ll is your \nlanguage code (see \nhttp://www.gnu.org/software/gettext/manual/html_node/gettext_221.html for a \nlist of language codes). \n\nIt's possible to edit po-files by hand, but I recommend a program such as \npoEdit (http://www.poedit.org) for editing translations. \n\nNote that for those translatable strings that look like \"RecordStatus|Paused\", \nyou should ignore what's to the left and only translate the string to the right \n(\"Paused\" in this example). This convention is there to make it possible to \ntranslate the same string to different things depending on context. \n\nAfter you've filled in all the translations you want (you don't have to \ntranslate all the strings), mail in the po file to me (see contact info) and \nI'll add it to the next release. \n\nIf a translation is incomplete, you're very welcome to translate the remaining \nuntranslated messages and mail them in. Corrections to translations are also \nappreciated, but they may need to be checked with the previous translator \nbefore including them. \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwdlkmpx%2Fgwaveedit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwdlkmpx%2Fgwaveedit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwdlkmpx%2Fgwaveedit/lists"}