Coder Social home page Coder Social logo

odevices / er-301 Goto Github PK

View Code? Open in Web Editor NEW
127.0 127.0 26.0 6.12 MB

Firmware and SDK for the ER-301

Home Page: https://www.orthogonaldevices.com/er-301

License: MIT License

Makefile 0.40% C++ 11.32% Awk 0.01% C 76.95% XS 0.01% Java 0.22% HTML 0.01% CMake 0.01% Assembly 3.53% Lua 7.53% Python 0.01% Shell 0.01% Tcl 0.02%

er-301's People

Contributors

ljwall avatar ngwese avatar odevices avatar tmfset 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

er-301's Issues

License?

Can you add a license file or license section to the README?

Congratulations on the release and a big high five for open sourcing!

New category style in toc.lua doesn't appear to be working (commit 2e9e5b)

Removed old style category entries in toc.lua:

{category="Synthesizers"},
{title="Amie",moduleName="Amie",keywords="oscillator"}

Switch to new inline style:
{title="Amie",moduleName="Amie",keywords="oscillator",category="Synthesizers"}

All units following new style appear in a single category at the bottom of the list, with the name of the category being the package name (e.g. Accents).

emu: mouse scroll is partially "inverted"

as a feature request/option:
scrolling on a touchpad feels normal when adjusting a parameter, but feels inverted when navigating a chain or naming a file (ie. scroll up moves the cursor towards end of chain).

This feels normal when using the hardware device but confusing when using a mouse/touchpad (not unlike so-called "natural scrolling" ^^ ).

An option (even at compile time) would be great.

Cue slices cause file corruption on quicksaves

https://forum.orthogonaldevices.com/t/v0-6-x-release-candidate-packages-and-mods/5246/210

Reproduced with https://freesound.org/people/meyweg/sounds/569604/

Corrupted file seems to be entirely replaced, possibly with the slices file (went from 15MB down to 139B):

> xxd ~/.od/front/ER-301/569604__meyweg__vocal-chords-morphagene-reel.wav
00000000: badc cdab 0700 0000 536c 6963 6573 0000  ........Slices..
00000010: 0000 0000 0000 0007 0000 0053 6c03 0000  ...........Sl...
00000020: 0000 0000 0000 0000 0080 3f5b 1107 0000  ..........?[....
00000030: 0000 0000 0000 0000 0080 3f16 ce0a 0000  ..........?.....
00000040: 0000 0000 0000 0000 0080 3fb9 860e 0000  ..........?.....
00000050: 0000 0000 0000 0000 0080 3f57 4a12 0000  ..........?WJ...
00000060: 0000 0000 0000 0000 0080 3f0b 0416 0000  ..........?.....
00000070: 0000 0000 0000 0000 0080 3f60 bd19 0000  ..........?`....
00000080: 0000 0000 0000 0000 0080 3f              ..........?

Failure trace:

stack traceback:
	[C]: in for iterator 'for iterator'
	...rc/er-301-custom-units/er-301/xroot/Sample/Pool/init.lua:573: in function 'Sample.Pool.clear'
	...01-custom-units/er-301/xroot/Persist/QuickSavePreset.lua:92: in function 'Persist.QuickSavePreset.apply'
	...et/src/er-301-custom-units/er-301/xroot/Persist/init.lua:733: in local 'task'
	...et/src/er-301-custom-units/er-301/xroot/Persist/init.lua:120: in upvalue 'confirmFirmwareVersionAndExecute'
	...et/src/er-301-custom-units/er-301/xroot/Persist/init.lua:740: in function 'Persist.quickLoad'
	.../er-301-custom-units/er-301/xroot/Persist/QuickSaver.lua:304: in function 'Persist.QuickSaver.load'
	(...tail calls...)
	.../er-301-custom-units/er-301/xroot/Persist/QuickSaver.lua:250: in local 'handler'
	...set/src/er-301-custom-units/er-301/xroot/Base/Widget.lua:164: in function 'Persist.QuickSaver.sendUpHelper'
	...set/src/er-301-custom-units/er-301/xroot/Base/Widget.lua:151: in function 'Persist.QuickSaver.sendUp'
	...et/src/er-301-custom-units/er-301/xroot/Base/Context.lua:226: in function 'Base.Context.notify'
	...set/src/er-301-custom-units/er-301/xroot/Application.lua:168: in function 'Application.notify'
	...set/src/er-301-custom-units/er-301/xroot/Application.lua:320: in function 'Application.defaultDispatcher'
	...set/src/er-301-custom-units/er-301/xroot/Application.lua:495: in function 'Application.loop'
	...iset/src/er-301-custom-units/er-301/xroot/boot/start.lua:54: in function <...iset/src/er-301-custom-units/er-301/xroot/boot/start.lua:46>
	[C]: in function 'xpcall'
	...iset/src/er-301-custom-units/er-301/xroot/boot/start.lua:65: in main chunk
	[C]: in function 'dofile'
	[string "dofile('/Users/tom.fiset/src/er-301-custom-un..."]:1: in main chunk

Installed packages not available if front card not mounted

Including core. Just a couple of mixer and test osc units are present. If you mount the front SD after booting, the libs will appear. I think the expected behavior is that you can boot without the front SD mounted and have all installed packages present.

Package filenames are hard-coded in the installation script.

This is hard to fix while maintaining compatibility with older firmware (that might be running the installation script). The is mainly because ZipArchiveReader class in older firmware does not expose the getFileCount() and getFilename() methods.

Using 'replace' on mixer units containing Schroeder Allpasses results in a crash.

Reproduced in firmware 0.6.13.

Steps:

  1. Insert a mixer, mono or stereo.
  2. inside the mixer, insert a sound generating unit. I tested this procedure with Varispeed players using several different samples.
  3. After the sound generator, insert a Schroeder Allpass Filter. Incidentally, this will turn any stereo signal at the input into a mono signal at the output (left channel only).
  4. Navigate to the top level of the chain and use the replace command to swap the mixer out for its mono or stereo counterpart. I happened upon this bug trying to remedy the stereo to mono issue, but a crash results in either case.
  5. The machine freezes while still on the unit selection screen.

Adding new small fonts

I'd like to add two new supported fonts to the base firmware,

  1. A small monospace font at 3x5 with size = 5
  2. A small legible font 4x5 with size = 6

Using the output from ttf2c.js this is now just a problem of designing them and adding them in.

@odevices would this be an ok addition? I'll add rendered pictures of the fonts in my PR when I create it.

emu: can't zoom out with minus key

issue : i can zoom in with "equals" key, but i can't zoom out with "minus" key.
I'm using a french keyboard layout. I replaced SDLK_MINUS with SDLK_6 to get it to work.

Fixed HPF unit is broken

From the forum :

It just seems to attenuate the entire signal when less than ~10 kHz or amplify when above ~10 kHz. It also seems to behave much worse on a stereo track where whatever you put in just looks awful on the output as if some weird DC offset was present which gets worse and worse the more you lower the cutoff towards 0 Hz.

Package library class fails to instantiate right after installation.

[214 13.0401s lua] INFO Attempting to require teletype...
[215 13.0402s lua] INFO teletype returned: Package.Library(teletype)
[216 13.0519s lua] INFO Package(teletype-0.7.0-dev.7): Failed to instantiate.
[217 13.0519s lua] INFO Traceback:/home/clarkson/projects/er-301/xroot/Package/init.lua:183: attempt to call a table value (local 'M')
stack traceback:
        /home/clarkson/projects/er-301/xroot/Package/init.lua:183: in function </home/clarkson/projects/er-301/xroot/Package/init.lua:178>
        [C]: in function 'xpcall'
        /home/clarkson/projects/er-301/xroot/Package/init.lua:187: in function 'Package.getLibrary'
        /home/clarkson/projects/er-301/xroot/Package/init.lua:158: in function 'Package.libraryCall'
        /home/clarkson/projects/er-301/xroot/Package/Interface.lua:141: in method 'onSelectionChanged'
        /home/clarkson/projects/er-301/xroot/ListWindow.lua:168: in function 'LogViewer.setSelection'
        /home/clarkson/projects/er-301/xroot/Package/Interface.lua:126: in method 'refresh'
        /home/clarkson/projects/er-301/xroot/Package/Interface.lua:179: in local 'handler'
        /home/clarkson/projects/er-301/xroot/Base/Widget.lua:190: in function 'Preamp.Interface.broadcastDownHelper'
        /home/clarkson/projects/er-301/xroot/Base/Widget.lua:181: in function 'Preamp.Interface.broadcastDown'
        ...     (skipping 4 levels)
        /home/clarkson/projects/er-301/xroot/Base/Widget.lua:164: in function 'Preamp.Interface.sendUpHelper'
        /home/clarkson/projects/er-301/xroot/Base/Widget.lua:151: in function 'Preamp.Interface.sendUp'
        /home/clarkson/projects/er-301/xroot/Base/Context.lua:226: in function 'Base.Context.notify'
        /home/clarkson/projects/er-301/xroot/Application.lua:168: in function 'Application.notify'
        /home/clarkson/projects/er-301/xroot/Application.lua:312: in function 'Application.defaultDispatcher'
        /home/clarkson/projects/er-301/xroot/Application.lua:495: in function 'Application.loop'
        /home/clarkson/projects/er-301/xroot/boot/start.lua:54: in function </home/clarkson/projects/er-301/xroot/boot/start.lua:46>
        [C]: in function 'xpcall'
        /home/clarkson/projects/er-301/xroot/boot/start.lua:65: in main chunk
        [C]: in function 'dofile'
        [string "dofile('/home/clarkson/projects/er-301/xroot/..."]:1: in main chunk

Error: fonts-freefont-ttf when installing dependencies

I have Homebrew installed on my mac, running Catalina 10.15.7 and when trying to install the dependencies I get the following error, I have tried searching for the error, but am unable to locate any troubleshooting tips. Is there an issue with the distribution or is it just me?

$ brew install gcc sdl2 sdl2_ttf fftw swig python3 zip fonts-freefont-ttf
Updating Homebrew...
==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
  https://github.com/Homebrew/brew#donations
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Updated Formulae
Updated 6 formulae.

==> Searching for similarly named formulae...
Error: No similarly named formulae found.
Error: No available formula or cask with the name "fonts-freefont-ttf".
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.
==> Searching taps on GitHub...
Error: No formulae found in taps.
M$ make emu
make: *** No rule to make target `emu'.  Stop.

When trying to compile (after error) I get:

$ make emu
make: *** No rule to make target `emu'.  Stop.

Chain sometimes stops producing audio when a unit loads a sample.

Bug reported in v0.6.02 on the forum:

...any unit that uses a buffer (Manual Grains, Single Cycle, Variable Player), after switching the buffer to a different sample 1-3 times will render the unit silent. Sometimes deleting and inserting a replacement unit will fix it, sometimes I need to clear the whole chain...

Inconsistent UX in file browser

The behavior ENTER changes when in multi-selection mode. It would be nice to have a more consistent mapping regardless of the mode.

A signal bus for control messages.

Units will respond to control messages. For example:

  • Clear buffer
  • Start/Stop
  • Disable/Enable Bypass
  • Load preset

There will also be a mechanism (possibly specialized units?) to trigger control messages.

Crash when pressing CANCEL in Select from Pool.

From forum:

On 0.6.06 pressing Cancel while in Select from Pool causes the ER-301 to freeze. using Up instead works fine. I have confirmed this on Variable Speed Player, Manual Grains, and Grain Stretch. Not sure if this exists on other firmware versions.

Crash when modifying Clocked Stretch 'clock' sub-chain.

Reproduced in 0.6.13.

  1. Insert a Clocked Stretch unit and set its stretch duration config option to 'all.'
  2. Return to the top level, enter the clock sub-chain. Attempting to assign the sub-chain's input freezes the machine.
  3. Contrarily, inserting units in the sub-chain to generate gates does not induce a crash. Tested with Tap Tempo and Sine Osc units.
  4. Similar results occurred with or without a buffer assigned.

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.