Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BETA TEST - FEEDBACK #1

Open
eh2k opened this issue Nov 29, 2021 · 101 comments
Open

BETA TEST - FEEDBACK #1

eh2k opened this issue Nov 29, 2021 · 101 comments

Comments

@eh2k
Copy link
Owner

eh2k commented Nov 29, 2021

WORK-IN-PROGRESS: At the moment where are not all engines in this repo. Feel free to leave me a message / feedback or any hints in this issue. More engines will follow.

HINT:

If the POGO Pin is soldered - cover the bottom of the teensy with insulating tape - all other pins are compatible with T4 to T3 (see pjrc). Be careful with connecting USB and power at the same time - if you have VIN/VUSB connected.

POGO Pin: https://www.modwiggler.com/forum/viewtopic.php?p=2867702#p2867702

FIRMWARE:

WebFlasher

@modularev
Copy link

Hey there! first of all, absolutely appreciate the work you've put in here! An amazing use of existing hardware and the GUI is very well thought-out, love the menu system and visualization of values.

some things I'd be very happy to see (possibly as settings or simple defines in the source-code?):

  • set long-press duration for menus
  • be able to set encoder / sw button (short-, long- and hold-)functions

@eh2k
Copy link
Owner Author

eh2k commented Dec 5, 2021

@modularev thank you for the first feedback. I have reduced the "long-press-duration" duration from 1s to 0.5s in the latest_firmware. At the moment I trying to avoid hardwarespecific settings in the "application" layer. The "Engine::OnEncoder" method is overridable - I think I have to introduce long-press there - e.g. for resting to defaults...

@djdoz
Copy link

djdoz commented Dec 17, 2021

Is there a way to calibrate the knobs as mine seems to be in the opposite direction? I recall in the ornament and crime this is in the calibration menu.

@djdoz
Copy link

djdoz commented Dec 17, 2021

Also, for mine ... Channel 2 CV is sequencing the v/oct of Channel 1. Also, how do you get the reverb machines to work? Do you patch the sound into one of the channel inputs?

@eh2k
Copy link
Owner Author

eh2k commented Dec 18, 2021

Hello @djdoz, thank you for your feedback. I have added a "hardware setup procudurce" in the latest firmware. You can change the encoder direction and test also your CV inputs there. "AUDIO_PROCESSOR" Machines like "Reverb or Resonator" are getting the audio input from the "left" neighbor machine. The output from the neighbor will be replaced, so you can have stereo output (like a Insert-FX). The CV-input can be setup-ed as "aux-input" to patch additional signal into the audio-processors.

@wtkdwc
Copy link

wtkdwc commented Dec 19, 2021

hi, very interesting project, made me finally utilise my abandoned t4:)
I would like to ask about current/future midi implementation, having cc control over all parameters could nicely compensate the lack of jack inputs.
Also noticed that in models where is not the same amount of parameters on each side, like m-osc/resonator, you can click with the right encoder to empty space - that should probably cycle just between the 2 available.

@eh2k
Copy link
Owner Author

eh2k commented Dec 19, 2021

Hello @wtkdwc, thank you for your feedback. I did some midi refactoring in the latest firmware - check: https://github.com/eh2k/squares-and-circles#midi-control. Have also to fix the "empty-parameter-selection-state" - well noticed ;-).

@djdoz
Copy link

djdoz commented Dec 21, 2021

Thanks @eh2k for the quick turnaround!

One question, in the TR/CV test screen, I'm seeing the below values,
TR0 0 CV0 +0.06V
TR1 0 CV1 +0.04V
TR2 0 CV2 +0.04V
TR3 0 CV3 +0.02V

Is it possible to calibrate the CV values?

@eh2k
Copy link
Owner Author

eh2k commented Dec 21, 2021

Hello @djdoz - sorry - there is no callibration at the momenent (but in my todo list).

@naught101
Copy link

Haven't had a chance to try this yet (teensy 4.0 on the way!), but just wanted to throw in there that a macro control that could map the CV in to arbitrary other params for each machine would be killer.

Also, a copier that allowed any copies to share params (e.g. so you could have 4-oscs with pitch and 3 other params modifiable by CV).

@eh2k
Copy link
Owner Author

eh2k commented Dec 26, 2021

Hello @naught101 - cv is V/OCT per default, but can also be modulation to any parameter of the track or as audio-aux for effects.(https://github.com/eh2k/squares-and-circles#machine-config-per-track).

As I understand the "copier" is like a "single cv modulating multiple parameters across tracks" ?

@naught101
Copy link

@eh2k:

For the first part, what you're describing is assignable CV. What I'm suggesting is a way to make a macro/superknob that modfies any/all other params by some arbitrary amount, e.g. with M-OSC, maybe you could have:

  • Timbre = 0.2 + 0.4 * macro
  • Color = 0.9 - 0.3 * macro
  • FM = 0.2 - 0.05 * macro
  • Assign CV to macro

Where each param's first value is set in the current config screen, and the macro coefficient is set in a macro screen. This would make it possible to use CV to get much more diverse modulation.

Yes, the copier idea would be basically that there are 2-4 copies of this track/machine that share 2-4 CV-parameter assignments, but each parameter's base value (CV=0) can be independently set per track/machine.

@wtkdwc
Copy link

wtkdwc commented Dec 27, 2021

@naught101 @eh2k
maybe more manageable would be adaptation of modulation config from mk2 analog elektrons, where you have page for each cv in with up to four targets (machine+parameter) and attenuverter for each of these modulations

@naught101
Copy link

Yes, @wtkdwc that sounds like a much better suggestion that could encompass both of mine in one feature.

@eh2k
Copy link
Owner Author

eh2k commented Dec 28, 2021

@wtkdwc @naught101
thanks for the suggestions - cv-macro-modulation is definitively in the todo-list.

@fxwiegand
Copy link

Thanks for this awesome new firmware! Really appreciate the work going into this.

Would it make sense to mark the stereo machines in the menu somehow? When i first tried out the clap i thought something broke because the kick i had on the other channel obviously stopped playing. I figured that the clap is stereo quite quickly and probably should have taken a look in the manual. On the other hand putting (stereo) behind the corresponding machines shouldn't be a problem right? 😊

@eh2k
Copy link
Owner Author

eh2k commented Jan 1, 2022

hello @fxwiegand, thank you for your feedback. Stereo makes the whole thing a bit complicated - on the other hand it's really nice especially with effects. I think the whole thing would be more self-explanatory - if it was visible somehow - maybe a small icon in the corner. I think the clap behavior is still a bug. Actually only fx-engines should overwrite the neighbour signal. I think non-fx engines should logically become mono (if the neighbor is not free).

@wtkdwc
Copy link

wtkdwc commented Jan 10, 2022

@eh2k thanks for update, nice to see the progress, have to try the midi:) btw is there some parameter in the platformio to build it with display upside down, as was flip_180 in o_c?

@eh2k
Copy link
Owner Author

eh2k commented Jan 14, 2022

Hello @modularev, @djdoz, @wtkdwc, @naught101, @fxwiegand

I have just uploaded a new squares-and-circles version.

The highlight are the modulations - I think this brings the whole thing to a new level.

If you hold down the encoder the modulation popup is shown for the selected parameter.
At the beginning I wanted to implement only the CV-voltage as source, but I quickly got the idea to use the triggers for sample-and-hold, and then only the trigger for generating random values. I'm currently trying to see if I can push the randomness even further - it's a pity that the number of parameters is limited. I hope the whole thing is still understandable and not overcomplicated. Beside the selection of the modulation source there is only one parameter (attenuverter).

New modulations can be added in the code similar to the engines (https://github.com/eh2k/squares-and-circles/blob/main/src/modulations.cxx).

I also changed the logic of the config page. Now you can select any TRIG-Inputs or CV-Inputs for an engine/track. So you can e.g. pass the V/OCT signal for all 4 engines with one CV-input.

On the top right you can see which outputs are used by the engine.

The whole parameter logic was also refactored. I hope I didn't add any new bugs.

I think I have to make another youtube video - demonstrating the modulations.

I wish you a lot of fun with the firmware - and a nice weekend.

@angiamusic
Copy link

Hey!

Just wanted to say that I've been having an absolute blast with Squares And Circles!! I made a little jam/cover and used this for the drums, would be nice if you could give it a listen :D https://www.youtube.com/watch?v=3MqSL9IBduc

I look forward to trying out this new update. Also, knowing CV calibration is on the horizon is reassuring.

The only issue (outside of CV tracking) that I've been facing with the firmware is that I can't for some reason use drum sounds on both channel 0 and 1; loading a drum engine on channel 1 mutes channel 0 and I don't know how to avoid that... But its still an amazing firmware nonetheless!

Looking forward to seeing all the progress! :D <3

@eh2k
Copy link
Owner Author

eh2k commented Jan 15, 2022

@angiamusic, thanks. I have watched your jam - nice! - it is funny - I could swear I also hear the synths, although you say you used it only for drums!

I think the issue you are describing "stereo handling non fx tracks" is already fixed in the latest firmware.

@djdoz
Copy link

djdoz commented Feb 14, 2022

Just had a play with the new firmware, the randomisation is really a nice touch, especially on drums to give it a bit of variation.

@eh2k
Copy link
Owner Author

eh2k commented Feb 14, 2022

For me personally, random modulation is more useful in practice than CV. Thinking a little further, I think a small sequencer with variable step lengths (Randuencer ©) that can be assigned to the parameters as modulations would make the whole thing even more interesting.

@adh82
Copy link

adh82 commented Feb 28, 2022

@eh2k
Just got this up and running. Its amazing!!! Thanks for your hard work on this.
Im very much looking forward to having calibration implemented as I'm having some trouble with pitch when using oscillator engines.
The drums are so good though. Wondering if it would be possible to have a level control for all the drum engines?
Also would it be possible have a mixing option to allow engines to choose an output? Id love to be able to set up a multi oscillator or a set of drums and have the come out of one output.
Lastly I have 2 o&C's and they sit side by side. I can see with your firmware the screen brightness is much lower that the original firmware. Is this possible to adjust?

@eh2k
Copy link
Owner Author

eh2k commented Mar 6, 2022

@adh82,
thank you for your feedback.

  • Calibration is in progress (I am currently considering a small "optional" MOD - it should be possible to lower the DAC range to -5...5V simply by adding an additional resistor - 100K parallel to R14 on uOC).
  • Level control: In the latest firmware it is already possible add extra gain on individual outputs (https://github.com/eh2k/squares-and-circles#machine-config).
  • Mixing option: This is really tricky - i don't have a simple solution for this - especially if you add stereo or panning etc.. I am however thinking about adding something similar to the modulation-popup to effect-engines, which allows you to feed in different channels (instead of just the neighboring channel).
  • Display brightness: The next update will include a setting option for this. If someone wants to set the brightness in other O_C / T_U firmware, you can do it this way: https://github.com/eh2k/temps_utile-/blob/master/soft/t_u_REV/src/SH1106_128x64_driver.cpp#L253

@djdoz
Copy link

djdoz commented Mar 21, 2022

@eh2k, do you think it is feasibile to import the Befaco Noise Phetora algorithms as machines in squares & circles?

@eh2k
Copy link
Owner Author

eh2k commented Mar 22, 2022

@djdoz

I have just looked at the source code of befaco. Unfortunately, the algorithms are based on the Teensy Audio Library and are distributed under GPL. The sound generation is not completely digital, and would probably be rather unspectacular on the OC without the additional analogue filters.

Theoretically, it should be possible to use the Teensy Audio Library in some way (implement a class based on AudioStream or AudioConnection). You just have to redirect the AudioStream frame-wise into the buffer array in the engine-process-method.
But it could be difficult, because of DMA, the whole timing and dependencies to other libraries.

At the moment, for example, all algorithms/engines are hardware-independent and can also be run on a PC (for testing purposes, etc.). With the Teensy Audio Library, this would IMHO no longer be possible.

At the moment I try to avoid GPL code, because I want to keep the option - to make "closed source" engines possible. I think the trend is more towards contributing with e.g. small closed-source "free-ware" engines instead of completely "open sourcing" the algorithms.

@djdoz
Copy link

djdoz commented Mar 25, 2022

@eh2k thanks for looking into this and the detialed response.

@eh2k
Copy link
Owner Author

eh2k commented Apr 3, 2022

Hello all,

after some work I want to slowly finish the beta phase, and share the release candidate version with you.

Besides the setup procedure (ADC/DAC calibration and display settings) I have mainly extended and optimized the modulations.

Modulations are now instantiated for each parameter individually - i.e. envelope or LFO with individual frequencies and settings per engine parameter are possible.

Two new FX engines have been added ( Gated-Reverb, Reverb-HP-LP - the algorithms are based on FV-1 emulation ).
It is now also possible to virtually mix the input signal of an FX engine from different engines.

Furthermore I have extended the documentation / readme.

I hope there are no new bugs added so far - it is really time-consuming to test the whole thing. I would be pleased for simply reporting back here that e.g. the calibration worked. I have only one module, where I have modded the DAC output to -5V/+5V lately.

@djdoz
Copy link

djdoz commented Apr 3, 2022

Wow, nice update! Will give this a try.

So, it is possible to port SPIN FV-1 algos onto this now? Does it support both mono and stereo effects?

Also, do you calibrate the module first and then perform the -5V/+5V mod or the other way around? And how would you verify that the -5V/+5V is working. I've triggered some sounds without the mod and by monitoring the waveforms on an oscilloscope it seems like it rarely exceeds -3V/+3V.

@oguu-san
Copy link

oguu-san commented Oct 5, 2022

@eh2k I see! It seems that the Midi inputs and triggers were mixed up. Thank you for your prompt response!

Repository owner deleted a comment from ehafh Nov 18, 2022
@rheslip
Copy link

rheslip commented Jan 22, 2023

Very impressive what you have done - so much packed into an 8HP module! The UI becomes familiar after a few hours of playing with the module and there is so much to explore here. So far I haven't found anything that seems like a bug.

I've tried MIDI input on T1 and so far its not working for me. I have not tried the USB MIDI but will give that a go. The MIDI section of the docs could be expanded - not completely clear to me how you assign MIDI to an engine, if you can trigger the drum voices from MIDI (if so what notes are triggers?), explanation of how to set up program change messages etc.

An idea is to expand the ROM drum sounds if there is flash left. The individual sounds in that engine could be triggered via MIDI notes general MIDI style. Some nice eye candy would be to show modulations moving the parameter dials.

Thank you so much for the time you have spent on this project. You've put new life into a classic Eurorack module with the amazing Teensy 4!

@lancerotti
Copy link

Hello eh2k,

uploaded yesterday the latest 0.0N4 firmware and I'm using it on a hardware that was hosting Hemisphere and Benisphere without problems.
I'm still figuring my way around it a bit, but I seem to have come across a problem with the T&H CV modulation. Basically what happens is that the triggers are shifted by one value, so:

  • Op: T&H-T1 is triggered by T2
  • Op: T&H-T2 is triggered by T3
  • Op: T&H-T3 is triggered by T4
  • Op: T&H-T4 is triggered by nothing

Am I missing something or is there an actual problem?
Thanks, enjoying it very much so far!!
N.

@waldnzwrld
Copy link

Thanks so much for this. I'm actually looking forward to using my O&C for the first time in ages.

As noted in one of the issues, the unit boots with T1 set to - so it doesn't actually trigger. took a minute to find the menu but overall the layout is fantastic, even without the DAC resistor mod, this sounds great.

More than thrilled, will report bugs if I find them

@Arnfris
Copy link

Arnfris commented Aug 9, 2023

Hello,
I am wery fond of this module. I was wondering if there is any plans to include a probability function in it? (Something like branches).

@lancerotti
Copy link

Hello,
Tried to play 4 oscillator engines at the same time and the module doesn't seem to like it very much. Having 2 is fine, 3 is almost critical and some sort of digital artefacts start to appear. To be clear I'm talking here about the MI implementations.

Also pitch was a bit glitchy and getting out of control every now and then. I was sending a mix of envelopes being sampled and held by the intellijel shifty, for context.

Impressive work on it, thank you

@djphazer
Copy link

Hey there! Just flashed the latest build (0b2fe87) to jam with and try out the new noise modes, etc.

There's a small bug I noticed: rotating either encoder on the "GND/---" machine causes a crash / reboot. Accidentally tripped over this a couple times when I was first setting up! Seems like a trivial fix, so I didn't open a new issue.

@eh2k
Copy link
Owner Author

eh2k commented Sep 13, 2023

Hi @djphazer, thanks for the hint - it's more or less fixed already, was a null pointer access once again ;-)

A little preview of the upcoming "commit": I've synced the plaits code last week, and I'm currently exploring the update. Besides other minor things I have optimised the behaviour of the encoders - e.g. the parameters change is 1/128 per step if the increments don't immediately follow each other, otherwise 1/24 per step is used. I still have to test this a bit, and will push it over the next few days.

@MidiSlave
Copy link

Hey I've just flashed today (0b2fe87) and trying to DXFM but it says "listening on [C1] Data 0000 of 4096". Sorry if i've missed something obvious! but I'm wondering how to load patches/banks etc. love your work. NES_Noise is really cool :)

@djphazer
Copy link

@MidiSlave the Webflasher can load additional machine data over USB. I was just playing with the DxFM engine myself.

@eh2k
Copy link
Owner Author

eh2k commented Sep 17, 2023

Hello everyone,
a new update 4b7f38d has just been pushed.

For me, one of the highlights is the encoder handling - I wonder why I didn't think of optimizing it earlier.
Beside many minor optimizations there are two new engines:

  • Synth/ClassicVAVCF is one of the new plaits engines, similar to the Virt.Analog. However, I have placed them under "Synth" category near to "Open303" and not under "M-OSC" (Marko oscillators).
  • Synth/DxFM_BNK1-3, these are the presets that are included in the latest Plaits update - the Synth-Engine is, however the MSFA engine (which is also used by the Dexed project). The MI-SixOpEngine sounds a bit different though, especially the playing of the envelopes is special (I haven't really understood yet how this is triggered exactly).

There are more new plaits-engines, but I want to understand them first before I make them available. Thanks to Emilie for releasing the sources...

If no bugs are reported in the next time, I would like to tag this as a new release.
Would be happy to get some feedback from you - e.g. What do you think of the latest Claps?.

🖖

WebFlasher

@jpnielsen
Copy link

re the latest Claps - didn't pay attention to when it was made stereo, but i like it. The last few drums have some HEX numbers instead of names - strange but no big deal.

So far, I haven't found any bugs.

Enjoying □□●●

@eh2k
Copy link
Owner Author

eh2k commented Oct 24, 2023

@jpnielsen thanks testing.

The claps were based on samples and pitch+filtering before. Now these are 100% models based on the RC-808 parameters and some extras.
A clap consists of several layers of different filters/VCA envelopes. I took this a bit further, and added some sort of randomness. The hex number in the clap name is the seed for the "random" function.
Here is a nice video how a 909-claps is modeled: https://www.youtube.com/watch?v=05zIiXSIcJE

@jrachedi
Copy link

Hi @eh2k !
I have been fiddling around with S&C past versions (circa 2022) for few monthes, but found a strange issue with last version (508de0e) : the CV/V/OCT engine outputs a lower voltage (with an approximative ratio of 0.66 of what it should be) than the one written on the bottom of the screen. On the other hand, when I do the calibration, the output voltage is the same than the one displayed. I investigated on this and I guess something strange is happening in the "push" function of the machine binary, as I traced the cv value and it is coherent until that call. Once again, the hardware shouldn't be involved as the calibration process outputs the displayed voltage.
Am i missing something ?
Thanks again for the work
Best regards
j.

@MidiSlave
Copy link

Hi @eh2k

I was wondering if it's possible to get a frequency locking feature like the new plaits firmware has (and some of the alternative firmwares) so that the Pitch parameter sweeps through octaves instead of chromatically. Even cooler would be an octave feet selector à la cs-80. Anyway just an idea. Love your work!

@HeWhoWantsJeansAgain
Copy link

First off, thank you for this incredible firmware. To say I'm impressed is an understatement. The idea that I can roll a thick four voice drone with internal modulation in 8hp is crazy.

One bit of feature feedback - setting the modulation amount to a fine tuned value is difficult with the behavior of the displayed knob indicator. For example, if I want to only very slightly detune each of the four voices with an LFO. Even a single notch on the display might be (or feels like) too much. Would it be possible to have an option for the Amount to instead display a 0 for 'center position' and then negative or positive values for the amount? For example, -50 or 50.

On the modulation screen, it seems like all the 'clicking' interactions are used (button presses, encoder presses) so I'm going to can my other idea of "fine / coarse adjustment". ;) (ie: changing a mode so you could either dial in whole number or say, decimal values).

But just the first option would be great. Thanks.

@jpnielsen
Copy link

jpnielsen commented May 28, 2024

I'm missing scale and offset on the LFO's. Maybe I just can't figure it out ?

Also - Can you make a LFO like on a moog one (see the pic) ?
I can't figure out the algorithm - but I use my own wavetable in VCV: https://github.com/jpnielsen/wavetables

image


Just as a FYI, I totally gave up on flashing in windows - the bootloader is flashed, but the "squares&circles" is not recognized - just a timeout in the log.

Screenshot 2024-05-27 190807

So I finally tried on a raspberry pi5:
the bootloader did not flash, it immediatley returned with a "flashing complete" message - but didn't do anything. maybe I'm missing some config for the udev rules - I will try that later.

When i flashed the bootloader using the teensyloader, the webflasher in chromium recognized the "squares&circles", and got the "update" and it worked, so I'm now capable of trying your latest creations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests