Giter Site home page Giter Site logo

andrewbelt / waveedit Goto Github PK

View Code? Open in Web Editor NEW
194.0 194.0 47.0 15.18 MB

Synthesis Technology WaveEdit for the E370 and E352 Eurorack synthesizer modules

Home Page: http://synthtech.com/waveedit/

License: GNU General Public License v3.0

Makefile 4.90% C++ 91.19% Shell 0.03% Python 3.88%

waveedit's People

Contributors

andrewbelt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

waveedit's Issues

Setting WAVE_LEN to something bigger than 256 crashes app

Awesome project but the exported length of 256 samples per wavetable is a bit unambitious. However setting the WAVE_LEN constant to something bigger crashes the app. Would be great to be able to set this to at least 512 or 1024.

On OSX, SDL is trying to build with X11 support and will not compile.

In the SDL_config.h file, this line:

#define SDL_VIDEO_DRIVER_X11 1

I commented out, so it would not try and build X11 support on OSX. Likely you'll need something to detect the architecture you are on as you'll likely need this for Linux.

Make completes with this removed and WaveEdit runs.

Save Bank overwrites wavefile

Hi, I've noticed a rather annoying bug when importing wavefiles and saving the bank. Here's how to reproduce it. I'm on a Mac running WaveEdit v1.1.

  • Click File > New Bank
  • Right-click slot 0 and import any wavefile
  • Click File > Save Bank as...
  • Choose and name and save the bank
  • Right-click slot 1 and import any wavefile
  • Click File > Save Bank

The last imported wavefile is now overwritten with the bank.

Curl is not building in OSX10.14 and Xcode 10

The version of curl being pointed to in the Makefiles is not compiling, and it seems to be some incompatibility with Xcode and curl, not sure where the mistake is.

The recommendation was to move up to curl-7.56 which I changed the dep Makefile to:

libcurl = curl-7.56.1

Rebuilt and that compiled with no problem.

This is what the error looked like, in case anyone searches for this:

connect.c:1086:12: error: 'connectx' is only available on macOS 10.11 or newer
      [-Werror,-Wunguarded-availability]
      rc = connectx(sockfd, &endpoints, SAE_ASSOCID_ANY,
           ^~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/socket.h:718:5: note:
      'connectx' has been explicitly marked partial here
int connectx(int, const sa_endpoints_t *, sae_associd_t, unsigned int,
    ^
connect.c:1086:12: note: enclose 'connectx' in a __builtin_available check to silence this
      warning
      rc = connectx(sockfd, &endpoints, SAE_ASSOCID_ANY,
           ^~~~~~~~
1 error generated.
make[2]: *** [libcurl_la-connect.lo] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1

Question about modifying bank size / wave len

Hi,

Excellent project! I've been able to make use of this to generate waveforms for the Sequential Pro 3 by limiting myself to the first 16 exported waves. The Pro 3 needs 16 waveforms and ideal length is 1024 samples each. I was able to modify a few values in order to limit the ui to showing 16 waveforms (and looping across those), however a few parts didn't update when I did that - for instance exporting a bank is still 64 samples (this isn't a big deal because I can take the first 16 of them). I tried updating the wave length to 1024 and that did not affect the exported sample size or number of data points in generated waves in the UI. Any tips for how I might be able to modify both bank size and wave length? If it was possible to add a bank size and wave length to the UI, people could use this to generate banks for many different synths.

Thanks!

Broken Makefile?

make
make: *** No rule to make target build/ext/pffft/pffft.c.o', needed by WaveEdit'. Stop.

Make WaveEdit easier to package for Linux

Hi, I just created an AUR package for the Git version of WaveEdit:

https://aur.archlinux.org/packages/waveedit-git/

I would like to create a package for the release version as well, but before that is possible, a few improvements would be necessary to make live for Linux distribution packagers easier:

  1. Merge #18 to fix compilation on Linux and allow to link to system libraries.

  2. Adapt paths to image, font and manual PDF files used by WaveEdit to the install location at build / install time. These filenames/paths are currently hard-coded with paths relative to the executable in src/ui.cpp. Installing data files next to the executable is a no-no on Linux and the current path with which WaveEdit runs will not be where it is installed anyway.

    Ideally these paths would use a common "data path" prefix (e.g. /usr/share/waveedit), which would be set by the configure script, as is common on POSIX-compatible systems.

  3. A release should have a source distribution archive (attached to the release on Guithub and/or uploaded to WaveEdit's website), with all git sub-modules included and the version number of the release somewhere in the source (currently it is in the Makefile, which is ok) and in the file name (e.g. WaveEdit-1.1.tar.gz). The archives, which Github creates automatically for each tagged release are not suitable, since they do not contain the sub-modules.

I hope you can implement these changes and if you release a new version with these changes I will make an AUR package for it asap.

version numbers missing on macOS

i've downloaded Version '1.1' but when selecting it in the Finder and using 'Get Info' it doesn't show any Version-number at all.

the CFBundleVersion and CFBundleShortVersionString entries in your Info.plist file are missing.

all apps on macOS are supposed to contain valid version information.

Bulk Operations

I built a wavetable from an existing analog sound sample, and was stymied by a lack of certain bulk tools [that is, operating on the wave sequence one has selected] which should be easy to implement. It was rather challenging having to edit each wave separately in Audacity, then load them one at a time in WaveEdit. Some items that would have helped a lot:

  • Bulk normalization: normalizing all the waves by the maximum of them all
  • Bulk individual normalization: normalizing each wave independently
  • Bulk DC offset removal. I would do this by adjusting each wave so that its first sample is at zero.
  • Bulk application of the various filters [pre-gain, phase shift, harmonic shift... ring modulation, etc.]. Just select your sequence and then change a slider. At present the slider only effects the last wave in the sequence (?!?).
  • Reverse a selected sequence
  • Rotate a selected sequence
  • This one is critical: moving a subsequence of waves. That is, select some waves, then shift them up or down in the wavetable, perhaps cut and paste them to a different location, inserting and displacing waves at a certain cursor position.
  • WaveEdit can break the wavetable out into individual single cycle waves ("Save Waves to Folder") but it has no way to import a folder of waves in. I would suggest assuming that the wave filenames start with numbers indicating their desired spot in the table on import.

I think WaveEdit is one of the best wavetable editing programs out there: a few minor bulk manipulation tools would make it a lot more powerful.

Loading wave into slot changes bank reference - causes overwrite on save

Windows 10 64-bit.

How to reproduce:

  1. Load a bank. Note that the bank name is displayed at top.
  2. Right click on a slot and load a single-cycle wave file.
  3. Note the name of the loaded bank has changed to the name of the single-cycle wave file just loaded.
  4. Click Save.
  5. Single-cycle wave overwritten with bank. Bank has not been saved to original file.

Hidpi Display / UI font scaling support

On HiDPi Screens (e.g. a resolution like 3840x2160) the fonts are so small they are barely readable, at least on Linux - I didn't try on MacOS or windows so far.
WIth a looking glass i see that Waveedit is s great and super useable app, just the fonts need to be readable to really use it.

I am interested to try to fix this myself, will look at the code to try to understand how to get there...

Exporting Harmonics

I'm building an additive synthesizer and would love to include wavetables; but my data format is of course harmonics. Is there any way WaveEdit might be made to output the amplitudes of the harmonics of all the waves in a given wavetable? It doesn't have to be any special binary format: text via fprintf would be just fine.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.